﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BussinessLogicTecnoPez.Produccion.Clasificacion_e_Incubacion;
using BussinessLogicTecnoPez.Produccion.FaenamientoEnvasado;
using BussinessLogicTecnoPez;
using WebUtils.Controls;
using Tecnopez.Globals;

public partial class Modules_FaenamientoEnvasado_ListadoEstanquesAFaenar : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        TPPEstanque.ObjType = typeof(Estanque);
        TPPEstanque.personalizarGestorAntesDelGetAll(setFilterEstanque);

        GenericMasterPage master = (GenericMasterPage)this.Master;
        master.Imagen = "../Styles/Icons/wordprocessing.png";
        master.Titulo = "Listado de estanques a faenar";
    }
    private void setFilterEstanque(object Manager)
    {
        EntityBase<Estanque>.getManager.AddFilter("tipoDeEstanqueInt", GenericManager<Estanque>.filterOperator.Equals, Convert.ToInt32(Estanque.tipoEstanque.estFaenamiento));
    }
    protected void cmdGenerar_Click(object sender, EventArgs e)
    {
        //obtengo los estanques
        Estanque.getManager.ClearFilters();
        if (TPPEstanque.ItemSelected == null)
            Estanque.getManager.AddFilter("tipoDeEstanqueInt", GenericManager<Estanque>.filterOperator.Equals, Convert.ToInt32(Estanque.tipoEstanque.estFaenamiento));
        else
        {
            Estanque objEstanque = TPPEstanque.ItemSelected as Estanque;
            Estanque.getManager.AddFilter("idestanque", GenericManager<Estanque>.filterOperator.Equals, objEstanque.idEstanque);
        }
        List<Estanque> objList = Estanque.getManager.GetFilter();

        //verifico si estan listos para faenar
        string strSelectionFormula = string.Empty;
        Clasificacion objClasificacion = new Clasificacion();
        foreach (Estanque objItem in objList)
        {
            if (objClasificacion.obtenerUltima(objItem.idEstanque))
            {
                if (objClasificacion.totalEnEstanque > 0)
                {
                    if (strSelectionFormula != string.Empty)
                        strSelectionFormula += " OR ";

                    strSelectionFormula += "{Estanque.idEstanque} = " + objItem.idEstanque;
                }
            }           
        }

        if (strSelectionFormula == string.Empty)
        {
            Functions.MessageBox("No se encontraron estanques listos para faenar.", this.Page);
            return;
        }

        visorDeReportes vr = new visorDeReportes();

        vr.archivoReporte = new rptEstanquesAFaenar();
        vr.paradescript = "";
        vr.paravalor = "";
        vr.selectionFormula = strSelectionFormula;
        vr.verReporte(Page);
    }
}
